package com.wang.goods.service;

import com.alibaba.fastjson.JSONObject;
import com.wang.common.util.PageInfoUtil;
import com.wang.goods.pojo.ACate;
import com.wang.goods.pojo.AGoods;

import java.util.List;
import java.util.Map;

/**
 * 商品模块Service
 */
public interface IGoodsService
{
    /**
     * 保存一条分类记录
     * @param cate   分类
     * @return  是一个json对象;
     * {
     * 	"code":"响应码",
     * 	"info":"响应信息",
     * 	"data":
     *    {
     * 		"id:":"",
     * 		"effect":""
     *    }
     * }
     */
    JSONObject saveOneCateService(ACate cate);

    /**
     * 更新一条分类记录
     * @param cate   分类
     * @return  此条sql语句对数据库影响的条数
     */
    JSONObject updateOneCateService(ACate cate);

    /**
     * 删除一条分类记录
     * @param condMap   搜索条件
     * @return  此条sql语句对数据库影响的条数
     */
    JSONObject deleteBatchCateService(Map<String,Object> condMap);

    /**
     * 查询一条分类记录
     * @param condMap   查询条件
     * @return  查询一条分类记录
     */
    ACate selectOneCateService(Map<String,Object> condMap);

    /**
     * 查询多条分类记录
     * @param pageInfoUtil 如果为null,查询全部记录,不分页;如果不为空,分页;
     * @param condMap   查询条件
     * @return  查询一条分类记录
     */
    List<ACate> selectCondListCateService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
    /**
     * 保存一条商品记录
     * @param goods   商品
     * @return  是一个json对象;
     * {
     * 	"code":"响应码",
     * 	"info":"响应信息",
     * 	"data":
     *    {
     * 		"id:":"",
     * 		"effect":""
     *    }
     * }
     */
    JSONObject saveOneGoodsService(AGoods goods);

    /**
     * 更新一条商品记录
     * @param goods   商品
     * @return  此条sql语句对数据库影响的条数
     */
    JSONObject updateOneGoodsService(AGoods goods);

    /**
     * 删除一条商品记录
     * @param condMap   搜索条件
     * @return  此条sql语句对数据库影响的条数
     */
    JSONObject deleteBatchGoodsService(Map<String,Object> condMap);

    /**
     * 查询一条商品记录
     * @param condMap   查询条件
     * @return  查询一条商品记录
     */
    AGoods selectOneGoodsService(Map<String,Object> condMap);

    /**
     * 查询多条商品记录
     * @param pageInfoUtil 如果为null,查询全部记录,不分页;如果不为空,分页;
     * @param condMap   查询条件
     * @return  查询一条商品记录
     */
    List<AGoods> selectCondListGoodsService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);
}
